package com.ruoyi.system.service.impl;

import cn.hutool.core.util.StrUtil;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.system.domain.THost;
import com.ruoyi.system.mapper.THostMapper;
import com.ruoyi.system.service.THostService;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.Arrays;
import java.util.Date;
import java.util.List;

/**
 * 主机表(THost)表服务实现类
 *
 * @author stone
 * @since 2022-04-15 17:12:12
 */
@Service("tHostService")
public class THostServiceImpl implements THostService {
    @Resource
    private THostMapper tHostMapper;


    /**
     * 通过ID查询单条数据
     *
     * @param id 主键
     * @return 实例对象
     */
    @Override
    public THost queryById(Integer id) {
        return this.tHostMapper.queryById(id);
    }

    /**
     * 分页查询
     *
     * @param tHost 筛选条件
     * @return 查询结果
     */
    @Override
    public List<THost> page(THost tHost) {

        return this.tHostMapper.queryAll(tHost);

    }

    /**
     * 新增数据
     *
     * @param tHost 实例对象
     * @return 实例对象
     */
    @Override
    public int insert(THost tHost) {
        tHost.setCreateTime(new Date());
        Long userId = SecurityUtils.getUserId();
        tHost.setCreator(userId.intValue());
        return this.tHostMapper.insert(tHost);

    }

    /**
     * 修改数据
     *
     * @param tHost 实例对象
     * @return 实例对象
     */
    @Override
    public int update(THost tHost) {
        tHost.setModifyTime(new Date());
        tHost.setModifier(SecurityUtils.getUserId().intValue());
        return this.tHostMapper.update(tHost);
    }

    /**
     * 通过主键删除数据
     *
     * @param id 主键
     * @return 是否成功
     */
    @Override
    public int deleteById(Integer id) {
        return this.tHostMapper.deleteById(id);
    }


    @Override
    public int deleteByIds(String ids) {
        if (StrUtil.isBlank(ids)) {
            return 0;
        }
        Arrays.stream(ids.split(",")).map(Integer::parseInt).forEach(e -> this.tHostMapper.deleteById(e));
        return 1;
    }
}
